<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>systemd-run-generator
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>systemd-run-generator 中文手册</h1><h2 id="auth_name">译者：<strong><a href="../index.html">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="../index.html">金步国作品集</a> [ <a href="../index.html">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="systemd-run-generator"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>systemd-run-generator — 将内核引导参数中的命令封装为系统服务</p></div><div class="refsynopsisdiv"><h2>大纲</h2><p><code class="filename">/usr/lib/systemd/system-generators/systemd-run-generator</code></p></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="systemd-run-generator.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p><code class="filename">systemd-run-generator</code>
    生成器能够理解
    如下三个内核引导参数：</p><p>由 <code class="option">systemd.run=</code> 设置的命令，将会被封装为
    <code class="filename">kernel-command-line.service</code> 服务，并被用作系统的启动目标。服务类型将被设为
    <code class="varname">Type=oneshot</code> ，并且默认配置为 <code class="varname">SuccessAction=exit</code> 与
    <code class="varname">FailureAction=exit</code> ，以确保在命令执行结束之后立即关闭系统。
    如果可能，命令的退出状态将被传递给调用此命令的容器管理器(例如
    <a href="systemd-nspawn.html#"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(7)</span></a>)，
    并有可能会被进一步传递给调用容器管理器的 shell 。
    多次使用该内核引导参数表示依次将每个命令按顺序放入多个 <code class="varname">ExecStart=</code> 中(一条命令对应一个)。
    命令将作为常规服务执行，也就是
    <code class="varname">DefaultDependencies=On</code> 。</p><p> <code class="option">systemd.run_success_action=</code> 与 <code class="option">systemd.run_failure_action=</code>
    用于设置在命令执行完成之后的动作。设为 "<code class="literal">none</code>" 表示不做任何动作，保持系统继续运行。
    对于其他可用值，可以参见
    <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a> 手册。</p><p><code class="filename">systemd-run-generator</code> 遵守
    <a href="systemd.generator.html#"><span class="citerefentry"><span class="refentrytitle">systemd.generator</span>(7)</span></a> 规范。</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="例子">例子<a class="headerlink" title="Permalink to this headline" href="systemd-run-generator.html#%E4%BE%8B%E5%AD%90">¶</a></h2><p>向容器内添加一个用户(使用
    <a href="systemd-nspawn.html#"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(7)</span></a> 工具)：</p><pre class="programlisting"># systemd-nspawn -D mycontainer -b systemd.run='"adduser test"'</pre><p>注意，上述命令中的两层引号都是必须的！
    外层的单引号将会首先被 shell 在向 <span class="command"><strong>systemd-nspawn</strong></span> 传递参数时剥离，
    内层的双引号会一直传递到容器的内核命令行上，最后被
    <span class="command"><strong>systemd-run-generator</strong></span> 剥离，最终确保由两个单词组成的命令
    <span class="command"><strong>adduser test</strong></span> 完整的传递到最终生成的单元文件中，
    而不会在中途被 shell 或单元生成器拆散。</p></div><div class="refsect1"><a name="id-1.7"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="systemd-run-generator.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
      <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>,
      <a href="kernel-command-line.html#"><span class="citerefentry"><span class="refentrytitle">kernel-command-line</span>(7)</span></a>,
      <a href="systemd-nspawn.html#"><span class="citerefentry"><span class="refentrytitle">systemd-nspawn</span>(7)</span></a>,
      <a href="systemd.unit.html#"><span class="citerefentry"><span class="refentrytitle">systemd.unit</span>(5)</span></a>,
      <a href="systemd.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>
    </p></div></div></body></html>
